package com.fellw.mango.real_person.authentication.api;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Builder;
import lombok.Data;

/**
 * ID real name authentication Phone OCR VerifiedO param
 *
 * @author fate
 * @version 1.0.0
 * @see IDVerifiedOCRResult.D#getPersonalValidityPeriodVisualization()
 * @since 1.0.0
 */
public interface IDVerifiedOCRDto {

    /**
     * id photo front
     */

    String getPersonalPhotoFrontUrl();

    /**
     * id photo reverse
     */
    String getPersonalPhotoReverseUrl();

    Long getMemberId();

    interface Setting {
        /**
         * id photo front
         */

        void setPersonalPhotoFrontUrl(String value);

        /**
         * id photo reverse
         */
        void setPersonalPhotoReverseUrl(String value);

        void setMemberId(Long value);

        default void of(IDVerifiedOCRDto dto) {
            setMemberId(dto.getMemberId());
            setPersonalPhotoFrontUrl(dto.getPersonalPhotoFrontUrl());
            setPersonalPhotoReverseUrl(dto.getPersonalPhotoReverseUrl());
        }
    }


    /**
     * ID real name authentication Phone OCR VerifiedO param
     *
     * @author fate
     * @version 1.0.0
     * @since 1.0.0
     */
    @Data
    @Builder
    @Schema(name = "IDVerifiedOCRPhoneDtoDto")
    class DTO implements IDVerifiedOCRDto, Setting {
        /**
         * id photo front
         */
        private String personalPhotoFrontUrl;

        /**
         * id photo reverse
         */
        private String personalPhotoReverseUrl;
        /**
         *
         */
        private Long memberId;
    }
}
